若發現資料類型不適用於接下來的分析,可使用DataFrame.astype()函式來進行轉換,將目前資料類型轉換為特定的資料類型。
DataFrame.astype(dtype,copy=True,errors='raise')
dtype:指定欲轉換之資料類別。
copy:布林值, True 時返回一個副本。
errors:兩個選項(1)raise:允許發生異常(2)ignore:若發生異常,將返回原始物件。
建立DataFrame,原始資料類型為int64。
import pandas as pd
df=pd.DataFrame([[8,7,6,5,4],[3,4,2,9,5],[4,6,7,2,8],[2,7,6,3,9]],index=['小明','小美','小英','小玉'],columns=['蘋果','芭樂','香蕉','橘子','檸檬'])
print(df)
df.dtypes
執行結果:
蘋果 芭樂 香蕉 橘子 檸檬
小明 8 7 6 5 4
小美 3 4 2 9 5
小英 4 6 7 2 8
小玉 2 7 6 3 9
蘋果 int64
芭樂 int64
香蕉 int64
橘子 int64
檸檬 int64
dtype: object
針對某特定欄位轉換資料類型
df['蘋果'] = df['蘋果'].astype(str)
df.dtypes
執行結果:
蘋果 object
芭樂 int64
香蕉 int64
橘子 int64
檸檬 int64
dtype: object
針對數個欄位轉換資料類型
df[['蘋果','芭樂']] = df[['蘋果','芭樂']].astype(str)
df.dtypes
執行結果:
蘋果 object
芭樂 object
香蕉 int64
橘子 int64
檸檬 int64
dtype: object
對整個DataFrame,全部資料一起轉換資料類型
df1 = df.astype('object').dtypes
print(df1)
執行結果:
蘋果 object
芭樂 object
香蕉 object
橘子 object
檸檬 object
dtype: object
亦可使用apply()及lambda函數轉換資料類型
df['蘋果'] = df['蘋果'].apply(lambda _: str(_))
df.dtypes
執行結果:
蘋果 object
芭樂 int64
香蕉 int64
橘子 int64
檸檬 int64
dtype: object
明天再繼續加油囉~